↳ ITRS
↳ ITRStoIDPProof
z
Cond_log(TRUE, x, y) → +@z(1@z, log(/@z(-@z(x, y), y), y))
Cond_log1(TRUE, y) → 0@z
log(x, y) → Cond_log(&&(>=@z(x, 2@z), >=@z(y, 2@z)), x, y)
log(1@z, y) → Cond_log1(>=@z(y, 2@z), y)
Cond_log(TRUE, x0, x1)
Cond_log1(TRUE, x0)
log(x0, x1)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
z
Cond_log(TRUE, x, y) → +@z(1@z, log(/@z(-@z(x, y), y), y))
Cond_log1(TRUE, y) → 0@z
log(x, y) → Cond_log(&&(>=@z(x, 2@z), >=@z(y, 2@z)), x, y)
log(1@z, y) → Cond_log1(>=@z(y, 2@z), y)
(1) -> (0), if ((y[1] →* y[0])∧(/@z(-@z(x[1], y[1]), y[1]) →* 1@z))
(1) -> (2), if ((y[1] →* y[2])∧(/@z(-@z(x[1], y[1]), y[1]) →* x[2]))
(2) -> (1), if ((x[2] →* x[1])∧(y[2] →* y[1])∧(&&(>=@z(x[2], 2@z), >=@z(y[2], 2@z)) →* TRUE))
Cond_log(TRUE, x0, x1)
Cond_log1(TRUE, x0)
log(x0, x1)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
z
(1) -> (0), if ((y[1] →* y[0])∧(/@z(-@z(x[1], y[1]), y[1]) →* 1@z))
(1) -> (2), if ((y[1] →* y[2])∧(/@z(-@z(x[1], y[1]), y[1]) →* x[2]))
(2) -> (1), if ((x[2] →* x[1])∧(y[2] →* y[1])∧(&&(>=@z(x[2], 2@z), >=@z(y[2], 2@z)) →* TRUE))
Cond_log(TRUE, x0, x1)
Cond_log1(TRUE, x0)
log(x0, x1)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ IDP
↳ IDPNonInfProof
z
(1) -> (2), if ((y[1] →* y[2])∧(/@z(-@z(x[1], y[1]), y[1]) →* x[2]))
(2) -> (1), if ((x[2] →* x[1])∧(y[2] →* y[1])∧(&&(>=@z(x[2], 2@z), >=@z(y[2], 2@z)) →* TRUE))
Cond_log(TRUE, x0, x1)
Cond_log1(TRUE, x0)
log(x0, x1)
(1) (y[2]=y[1]∧/@z(-@z(x[1], y[1]), y[1])=x[2]1∧x[2]=x[1]∧&&(>=@z(x[2], 2@z), >=@z(y[2], 2@z))=TRUE∧y[1]=y[2]1 ⇒ COND_LOG(TRUE, x[1], y[1])≥NonInfC∧COND_LOG(TRUE, x[1], y[1])≥LOG(/@z(-@z(x[1], y[1]), y[1]), y[1])∧(UIncreasing(LOG(/@z(-@z(x[1], y[1]), y[1]), y[1])), ≥))
(2) (>=@z(x[2], 2@z)=TRUE∧>=@z(y[2], 2@z)=TRUE ⇒ COND_LOG(TRUE, x[2], y[2])≥NonInfC∧COND_LOG(TRUE, x[2], y[2])≥LOG(/@z(-@z(x[2], y[2]), y[2]), y[2])∧(UIncreasing(LOG(/@z(-@z(x[1], y[1]), y[1]), y[1])), ≥))
(3) (-2 + x[2] ≥ 0∧y[2] + -2 ≥ 0 ⇒ (UIncreasing(LOG(/@z(-@z(x[1], y[1]), y[1]), y[1])), ≥)∧-2 + (-1)Bound + x[2] ≥ 0∧-1 + x[2] + (-1)max{x[2] + (-1)y[2], (-1)x[2] + y[2]} + min{-1 + max{y[2], (-1)y[2]}, max{x[2] + (-1)y[2], (-1)x[2] + y[2]}} ≥ 0)
(4) (-2 + x[2] ≥ 0∧y[2] + -2 ≥ 0 ⇒ (UIncreasing(LOG(/@z(-@z(x[1], y[1]), y[1]), y[1])), ≥)∧-2 + (-1)Bound + x[2] ≥ 0∧-1 + x[2] + (-1)max{x[2] + (-1)y[2], (-1)x[2] + y[2]} + min{-1 + max{y[2], (-1)y[2]}, max{x[2] + (-1)y[2], (-1)x[2] + y[2]}} ≥ 0)
(5) ((2)y[2] ≥ 0∧(2)x[2] + (-2)y[2] ≥ 0∧-2 + x[2] ≥ 0∧y[2] + -2 ≥ 0∧x[2] + (-2)y[2] ≥ 0 ⇒ (UIncreasing(LOG(/@z(-@z(x[1], y[1]), y[1]), y[1])), ≥)∧-2 + (-1)Bound + x[2] ≥ 0∧-2 + (2)y[2] ≥ 0)
(6) (-1 + (2)y[2] + (-1)x[2] ≥ 0∧(2)y[2] ≥ 0∧(2)x[2] + (-2)y[2] ≥ 0∧-2 + x[2] ≥ 0∧y[2] + -2 ≥ 0 ⇒ (UIncreasing(LOG(/@z(-@z(x[1], y[1]), y[1]), y[1])), ≥)∧-2 + (-1)Bound + x[2] ≥ 0∧-1 + x[2] ≥ 0)
(7) ((2)y[2] ≥ 0∧-2 + x[2] ≥ 0∧-1 + x[2] ≥ 0∧y[2] + -2 ≥ 0∧-1 + (-2)x[2] + (2)y[2] ≥ 0 ⇒ (UIncreasing(LOG(/@z(-@z(x[1], y[1]), y[1]), y[1])), ≥)∧-2 + (-1)Bound + x[2] ≥ 0∧-1 + x[2] ≥ 0)
(8) ((2)y[2] ≥ 0∧(2)y[2] + (2)x[2] ≥ 0∧-2 + (2)y[2] + x[2] ≥ 0∧y[2] + -2 ≥ 0∧x[2] ≥ 0 ⇒ (UIncreasing(LOG(/@z(-@z(x[1], y[1]), y[1]), y[1])), ≥)∧-2 + (-1)Bound + (2)y[2] + x[2] ≥ 0∧-2 + (2)y[2] ≥ 0)
(9) (-1 + y[2] + (-1)x[2] ≥ 0∧(2)y[2] ≥ 0∧(2)x[2] ≥ 0∧-2 + y[2] + x[2] ≥ 0∧y[2] + -2 ≥ 0 ⇒ (UIncreasing(LOG(/@z(-@z(x[1], y[1]), y[1]), y[1])), ≥)∧-2 + (-1)Bound + y[2] + x[2] ≥ 0∧-1 + y[2] + x[2] ≥ 0)
(10) ((2)y[2] ≥ 0∧-1 + x[2] ≥ 0∧x[2] ≥ 0∧y[2] + -2 ≥ 0∧-3 + (-2)x[2] + (2)y[2] ≥ 0 ⇒ (UIncreasing(LOG(/@z(-@z(x[1], y[1]), y[1]), y[1])), ≥)∧-1 + (-1)Bound + x[2] ≥ 0∧x[2] ≥ 0)
(11) (4 + (2)y[2] ≥ 0∧4 + (2)y[2] + (2)x[2] ≥ 0∧2 + (2)y[2] + x[2] ≥ 0∧y[2] ≥ 0∧x[2] ≥ 0 ⇒ (UIncreasing(LOG(/@z(-@z(x[1], y[1]), y[1]), y[1])), ≥)∧2 + (-1)Bound + (2)y[2] + x[2] ≥ 0∧2 + (2)y[2] ≥ 0)
(12) (1 + y[2] + (-1)x[2] ≥ 0∧4 + (2)y[2] ≥ 0∧(2)x[2] ≥ 0∧y[2] + x[2] ≥ 0∧y[2] ≥ 0 ⇒ (UIncreasing(LOG(/@z(-@z(x[1], y[1]), y[1]), y[1])), ≥)∧(-1)Bound + y[2] + x[2] ≥ 0∧1 + y[2] + x[2] ≥ 0)
(13) ((2)y[2] ≥ 0∧x[2] ≥ 0∧1 + x[2] ≥ 0∧y[2] + -2 ≥ 0∧-5 + (-2)x[2] + (2)y[2] ≥ 0 ⇒ (UIncreasing(LOG(/@z(-@z(x[1], y[1]), y[1]), y[1])), ≥)∧(-1)Bound + x[2] ≥ 0∧1 + x[2] ≥ 0)
(14) (4 + (2)y[2] ≥ 0∧x[2] ≥ 0∧1 + x[2] ≥ 0∧y[2] ≥ 0∧-1 + (-2)x[2] + (2)y[2] ≥ 0 ⇒ (UIncreasing(LOG(/@z(-@z(x[1], y[1]), y[1]), y[1])), ≥)∧(-1)Bound + x[2] ≥ 0∧1 + x[2] ≥ 0)
(15) (LOG(x[2], y[2])≥NonInfC∧LOG(x[2], y[2])≥COND_LOG(&&(>=@z(x[2], 2@z), >=@z(y[2], 2@z)), x[2], y[2])∧(UIncreasing(COND_LOG(&&(>=@z(x[2], 2@z), >=@z(y[2], 2@z)), x[2], y[2])), ≥))
(16) ((UIncreasing(COND_LOG(&&(>=@z(x[2], 2@z), >=@z(y[2], 2@z)), x[2], y[2])), ≥)∧0 ≥ 0∧0 ≥ 0)
(17) ((UIncreasing(COND_LOG(&&(>=@z(x[2], 2@z), >=@z(y[2], 2@z)), x[2], y[2])), ≥)∧0 ≥ 0∧0 ≥ 0)
(18) (0 ≥ 0∧0 ≥ 0∧(UIncreasing(COND_LOG(&&(>=@z(x[2], 2@z), >=@z(y[2], 2@z)), x[2], y[2])), ≥))
(19) (0 = 0∧0 ≥ 0∧0 = 0∧0 = 0∧0 = 0∧(UIncreasing(COND_LOG(&&(>=@z(x[2], 2@z), >=@z(y[2], 2@z)), x[2], y[2])), ≥)∧0 ≥ 0)
POL(-@z(x1, x2)) = x1 + (-1)x2
POL(>=@z(x1, x2)) = -1
POL(TRUE) = 1
POL(&&(x1, x2)) = 1
POL(2@z) = 2
POL(LOG(x1, x2)) = -1 + x1
POL(FALSE) = 1
POL(COND_LOG(x1, x2, x3)) = -1 + x2 + (-1)x1
POL(undefined) = -1
Polynomial Interpretations with Context Sensitive Arithemetic Replacement
POL(TermCSAR-Mode @ Context)
POL(/@z(x1, y[2])1 @ {LOG_2/0}) = max{x1, (-1)x1} + (-1)min{max{x2, (-1)x2} + -1, max{x1, (-1)x1}}
LOG(x[2], y[2]) → COND_LOG(&&(>=@z(x[2], 2@z), >=@z(y[2], 2@z)), x[2], y[2])
COND_LOG(TRUE, x[1], y[1]) → LOG(/@z(-@z(x[1], y[1]), y[1]), y[1])
COND_LOG(TRUE, x[1], y[1]) → LOG(/@z(-@z(x[1], y[1]), y[1]), y[1])
&&(FALSE, FALSE)1 ↔ FALSE1
-@z1 ↔
TRUE1 → &&(TRUE, TRUE)1
FALSE1 → &&(FALSE, TRUE)1
&&(TRUE, FALSE)1 ↔ FALSE1
/@z1 →
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ IDP
↳ IDPNonInfProof
↳ AND
↳ IDP
↳ IDependencyGraphProof
↳ IDP
z
Cond_log(TRUE, x0, x1)
Cond_log1(TRUE, x0)
log(x0, x1)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ IDP
↳ IDPNonInfProof
↳ AND
↳ IDP
↳ IDP
↳ IDependencyGraphProof
z
Cond_log(TRUE, x0, x1)
Cond_log1(TRUE, x0)
log(x0, x1)